package com.lin.controller;


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lin.entity.Book;
import com.lin.service.IBookService;
import com.lin.utils.Constant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author lin
 * @since 2025-04-14
 */
@RestController
@RequestMapping("/book")
public class BookController {

    @Autowired
    private IBookService bookService;

    /* 这个方法返回的是 PageInfo 信息, 包含了 PageInfo 的所有信息
     * 如: total、list、pageNum、pageSize、size、startRow、endRow...
     */
    @GetMapping("/hello1/{pageNo}")
    public PageInfo<Book> hello1(@PathVariable int pageNo){
        // 设置当前页码和每页显示记录条数
        PageHelper.startPage(pageNo, Constant.PAGE_SIZE);
        // 查询数据
        List<Book> bookList = bookService.list();
        // 将数据封装到PageInfo对象中并返回
        return new PageInfo<>(bookList);
    }

    // 这个不会返回其他 PageInfo 信息, 只返回分页后的数据
    @GetMapping("/hello2/{pageNo}")
    public List<Book> hello(@PathVariable int pageNo){
        // 设置当前页码和每页显示记录条数
        PageHelper.startPage(pageNo, Constant.PAGE_SIZE);
        // 查询数据并返回
        return bookService.list();
    }
}
